// lunar_solar_conversion.c
#include <stdio.h>
#include <stdlib.h>
// 计算天干地支
void getTianGanDiZhi(int year, char *tgdz) {
    const char *gan[] = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
    const char *zhi[] = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
    int tg = year % 10;
    int dz = year % 12;
    sprintf(tgdz, "%s%s", gan[tg], zhi[dz]);
}
// 判断是否为闰年
int isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 根据公历日期查询农历日期（简化实现，未考虑复杂的农历规则）
void queryLunarDate() {
    int year, month, day;
    printf("请输入公历日期（格式：年 月 日）：");
    scanf("%d %d %d", &year, &month, &day);
    // 显示当月月历（调用calendar_display.c中的函数实现）
    displayMonthCalendar(year, month);
    char tgdz[10];
    getTianGanDiZhi(year, tgdz);
    printf("天干地支：%s\n", tgdz);
    // 简单判断节气（不准确，仅示例）
    // 此处应补充更精确的节气判断逻辑
    printf("节气判断及相关信息（待完善）\n");
}
// 根据农历日期查询公历日期（简化实现，未考虑复杂的农历转公历规则）
void querySolarDate() {
    int year, month, day;
    printf("请输入农历日期（1840~2100，格式：年 月 日）：");
    scanf("%d %d %d", &year, &month, &day);
    if (year < 1840 || year > 2100) {
        printf("输入的农历年份不在范围内！\n");
        return;
    }
    // 此处应补充完整的农历转公历逻辑，暂时简单返回
    printf("对应的公历日期（待完善）\n");
}